package com.yanfan.energy.domain;

import com.yanfan.common.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 排程表(Schedules)实体类
 *
 * @author makejava
 * @since 2023-01-10 17:19:12
 */
public class Schedules implements Serializable {
    private static final long serialVersionUID = -64940236826533377L;
    /**
     * 主键
     */
    @Excel(name = "排程id")
    private Long id;
    /**
     * 排程编号
     */
    @Excel(name = "排程编号")
    private String number;
    /**
     * 计划编号
     */
    @Excel(name = "计划排程")
    private String planNumber;
    /**
     * 计划名称
     */
    @Excel(name = "计划名称")
    private String planName;
    /**
     * 订单编号
     */
    @Excel(name = "订单编号")
    private String orderNumber;
    /**
     * 客户id
     */
    @Excel(name = "客户id")
    private Long clientId;
    /**
     * 客户名称
     */
    @Excel(name = "客户名称")
    private String clientName;
    /**
     * 交货日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "交货时间")
    private Date delivery;
    /**
     * 负责人
     */
    @Excel(name = "负责人")
    private String principal;
    /**
     * 联系电话
     */
    @Excel(name = "联系电话")
    private String telephone;
    /**
     * 状态（1、待处理，2、处理中，3、已完成）
     */
    @Excel(name = "状态")
    private Integer state;
    /**
     * 订单进度
     */
    @Excel(name = "订单进度")
    private Double rateOfProgress;
    /**
     * 创建人
     */
    @Excel(name = "创建人")
    private String createdBy;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间")
    private Date createdDate;
    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "修改时间")
    private Date lastModifiedDate;
    /**
     * 批次集合信息
     *
     * @author caijinkang
     * @date 2023/1/11 11:29
     * @param null
     * @return null
     */
    private List<Batches> batches;
    /**
     * 批次分段集合信息（新增、修改生产排序信息）
     *
     * @author caijinkang
     * @date 2023/2/7 9:55
     * @param null
     * @return null
     */
    private List<SectionBatchedBody> sectionBatchedBodies;


    public Schedules() {
    }

    public Schedules(Long id, String number, String planNumber, String planName, String orderNumber, Long clientId, String clientName, Date delivery, String principal, String telephone, Integer state, Double rateOfProgress, String createdBy, Date createdDate, Date lastModifiedDate, List<Batches> batches, List<SectionBatchedBody> sectionBatchedBodies) {
        this.id = id;
        this.number = number;
        this.planNumber = planNumber;
        this.planName = planName;
        this.orderNumber = orderNumber;
        this.clientId = clientId;
        this.clientName = clientName;
        this.delivery = delivery;
        this.principal = principal;
        this.telephone = telephone;
        this.state = state;
        this.rateOfProgress = rateOfProgress;
        this.createdBy = createdBy;
        this.createdDate = createdDate;
        this.lastModifiedDate = lastModifiedDate;
        this.batches = batches;
        this.sectionBatchedBodies = sectionBatchedBodies;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getPlanNumber() {
        return planNumber;
    }

    public void setPlanNumber(String planNumber) {
        this.planNumber = planNumber;
    }

    public String getPlanName() {
        return planName;
    }

    public void setPlanName(String planName) {
        this.planName = planName;
    }

    public String getOrderNumber() {
        return orderNumber;
    }

    public void setOrderNumber(String orderNumber) {
        this.orderNumber = orderNumber;
    }

    public Long getClientId() {
        return clientId;
    }

    public void setClientId(Long clientId) {
        this.clientId = clientId;
    }

    public String getClientName() {
        return clientName;
    }

    public void setClientName(String clientName) {
        this.clientName = clientName;
    }

    public Date getDelivery() {
        return delivery;
    }

    public void setDelivery(Date delivery) {
        this.delivery = delivery;
    }

    public String getPrincipal() {
        return principal;
    }

    public void setPrincipal(String principal) {
        this.principal = principal;
    }

    public String getTelephone() {
        return telephone;
    }

    public void setTelephone(String telephone) {
        this.telephone = telephone;
    }

    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }

    public Double getRateOfProgress() {
        return rateOfProgress;
    }

    public void setRateOfProgress(Double rateOfProgress) {
        this.rateOfProgress = rateOfProgress;
    }

    public String getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public Date getCreatedDate() {
        return createdDate;
    }

    public void setCreatedDate(Date createdDate) {
        this.createdDate = createdDate;
    }

    public Date getLastModifiedDate() {
        return lastModifiedDate;
    }

    public void setLastModifiedDate(Date lastModifiedDate) {
        this.lastModifiedDate = lastModifiedDate;
    }

    public List<Batches> getBatches() {
        return batches;
    }

    public void setBatches(List<Batches> batches) {
        this.batches = batches;
    }

    public List<SectionBatchedBody> getSectionBatchedBodies() {
        return sectionBatchedBodies;
    }

    public void setSectionBatchedBodies(List<SectionBatchedBody> sectionBatchedBodies) {
        this.sectionBatchedBodies = sectionBatchedBodies;
    }

    @Override
    public String toString() {
        return "Schedules{" + "id=" + id + ", number='" + number + '\'' + ", planNumber='" + planNumber + '\'' + ", planName='" + planName + '\'' + ", orderNumber='" + orderNumber + '\'' + ", clientId=" + clientId + ", clientName='" + clientName + '\'' + ", delivery=" + delivery + ", principal='" + principal + '\'' + ", telephone='" + telephone + '\'' + ", state=" + state + ", rateOfProgress=" + rateOfProgress + ", createdBy='" + createdBy + '\'' + ", createdDate=" + createdDate + ", lastModifiedDate=" + lastModifiedDate + ", batches=" + batches + ", sectionBatchedBodies=" + sectionBatchedBodies + '}';
    }
}

